// 情报展示子系统
import * as api from '@/api/qbShow.js'

const state = {
  // ------------------产品管理 start
  // 树
  proTree: [],
  // 列表
  proList: [],
  // 列表
  proParams: {
    // 目标id
    targetType: '',
    // 模糊搜索
    name: '',
    // 开始时间
    startTime: '',
    // 结束时间
    endTime: '',
    // 标签
    categoryIds: '',
    pageNum: 1,
    pageSize: 12,
    total: 0
  },
  // 热门下载
  proParamsR: {
    // 按下载量 asc正序 desc倒叙 热门内容
    downloads: 'desc',
    // 目标id
    // targetType: '',
    pageNum: 1,
    pageSize: 6,
  },
  // 热门浏览
  proBrowseR: {
    // 按下载量 asc正序 desc倒叙 热门内容
    viewNumber: 'desc',
    // 目标id
    // targetType: '',
    pageNum: 1,
    pageSize: 6,
  },
  // 热门内容
  proListR: [],
  proBrowseListR: [],
  // loading
  proLoading: false,
  // 标签数据
  proLabels: [],
  // 详情数据
  proItem: {},
  // ------------------产品管理 end

  // ------------------图册管理 start
  atlasTree: [],
  // 列表
  atlasList: [],
  // 列表
  atlasParams: {
    // 类型id
    typeId: '',
    // 模糊搜索
    name: '',
    pageNum: 1,
    pageSize: 32,
    total: 0
  },
  // loading
  atlasLoading: false,
  loading: false,
  // ------------------图册管理 end

  // ------------------资料展示 start
  // 列表
  dataList: [],
  // 列表
  dataParams: {
    // 模糊搜索
    name: '',
    pageNum: 1,
    pageSize: 20,
    total: 0
  },
  // loading
  dataLoading: false,
  // 列表 热门
  dataListR: [],
  dataBrowseListR: [],
  // 列表 热门
  dataParamsR: {
    // 按下载量 asc正序 desc倒叙 热门内容
    downloads: 'desc',
    // 模糊搜索
    name: '',
    pageNum: 1,
    pageSize: 6,
  },
  // 热门浏览
  dataBrowseR: {
    // 按下载量 asc正序 desc倒叙 热门内容
    viewNumber: 'desc',
    // 目标id
    name: '',
    pageNum: 1,
    pageSize: 6,
  },

  // ------------------资料展示 end
}
const mutations = {

}

const actions = {
  // ---------------------------------产品管理 start------------------------------------

  // 产品管理 查询左侧树
  async getTargetTree({ state }) {
    state.loading = true
    const res = await api.getTargetTree();
    if (res.code === 20000) {
      state.loading = false
      state.proTree = res.list;
    } else {
      state.proTree = [];
    }
  },
  // 产品管理 查询中间列表
  async getAll({ state }, { params, tabs }) {
    state.proLoading = true;
    let res;
    if (tabs === "0") {
      // 产品管理 查询中间列表 全部
      res = await api.getAll(params);
    } else if (tabs === "2") {
      // 产品管理 查询中间列表 图片
      res = await api.getImageAll(params);
    } else if (tabs === "3") {
      // 产品管理 查询中间列表 视频
      res = await api.getVideoAll(params);
    }
    if (res.code === 20000) {
      state.proList = res.page.list;
      params.total = res.page.total;
      this.proParams = params;
    } else {
      state.proList = []
    }
    state.proLoading = false;
  },
  // 产品管理 查询热门内容
  async getAllR({ state }, { params, tabs }) {
    let res;
    if (tabs === "0") {
      // 产品管理 查询中间列表 全部
      res = await api.getAll(params);
    } else if (tabs === "2") {
      // 产品管理 查询中间列表 图片
      res = await api.getImageAll(params);
    } else if (tabs === "3") {
      // 产品管理 查询中间列表 视频
      res = await api.getVideoAll(params);
    }
    if (res.code === 20000) {
      state.proListR = res.page.list;
      this.proParamsR = params;
      console.log(res);
    } else {
      state.proListR = []
    }
  },
  async getBrowseAllR({ state }, { params, tabs }) {
    let res;
    if (tabs === "0") {
      // 产品管理 查询中间列表 全部
      res = await api.getAll(params);
    } else if (tabs === "2") {
      // 产品管理 查询中间列表 图片
      res = await api.getImageAll(params);
    } else if (tabs === "3") {
      // 产品管理 查询中间列表 视频
      res = await api.getVideoAll(params);
    }
    if (res.code === 20000) {
      state.proBrowseListR = res.page.list;
      this.proBrowseR = params;
      console.log(res);
    } else {
      state.proBrowseListR = []
    }
  },
  // 产品管理 查询标签树
  async selectLabelGroup({ state }) {
    const res = await api.selectLabelGroup();
    if (res.code === 20000) {
      state.proLabels = res.list;
    } else {
      state.proLabels = [];
    }
  },
  // 产品管理 findById 查看详情
  async findById({ state }, { params, setVisiable }) {
    const res = await api.findById(params);
    if (res.code === 20000) {
      if (res.list.length !== 0) {
        state.proItem = res.list[0];
      } else {
        state.proItem = {};
      }
      setVisiable();
    } else {
      state.proItem = {};
    }
  },
  // 资料管理 findById 查看详情
  async findByIdDoc({ state }, { params, setVisiable }) {
    const res = await api.findByIdDoc(params);
    if (res.code === 20000) {
      if (res.list.length !== 0) {
        state.proItem = res.list[0];
      } else {
        state.proItem = {};
      }
      setVisiable();
    } else {
      state.proItem = {};
    }
  },
  // 产品管理 findById 查看详情
  async createHtml(context, { obj, handleClose, router },) {
    console.log(5555, obj);
    const res = await api.createHtml(obj);
    console.log(6666, obj);
    var eleLink = document.createElement('a');
    eleLink.download = "数据目录.html";
    eleLink.style.display = 'none';
    // 字符内容转变成blob地址
    var blob = new Blob([res]);
    eleLink.href = URL.createObjectURL(blob);
    // 触发点击
    document.body.appendChild(eleLink);
    eleLink.addEventListener('click', () => {
      document.body.removeChild(eleLink);
      // 打开新页面
      router.push({
        name: 'showHtml',
        params: { html: res }
      });
    })
    eleLink.click();
    // 然后移除
    // 关闭提示框
    handleClose();
  },
  // ----------------------------------------产品管理 end--------------------------------------------------



  // ----------------------------------------图册管理 start--------------------------------------------------
  // 图册管理 图册类型树查询
  async getAtlasTree({ state }) {
    const res = await api.getAtlasTree();
    if (res.code === 20000) {
      state.atlasTree = res.list;
    } else {
      state.atlasTree = [];
    }
  },
  // 查询图册列表
  async selectTotalCount({ state }, { params }) {
    state.atlasLoading = true;
    const res = await api.selectTotalCount(params);
    if (res.code === 20000) {
      state.atlasList = res.page.list;
      params.total = res.page.total;
      state.atlasParams = params;
    } else {
      state.atlasList = [];
    }
    state.atlasLoading = false;
  },
  // ----------------------------------------图册管理 end--------------------------------------------------

  // ----------------------------------------资料展示 start--------------------------------------------------
  // 查询资料展示列表
  async getDataAll({ state }, { params }) {
    state.dataLoading = true;
    const res = await api.getDataAll(params);
    if (res.code === 20000) {
      if (params.pageNum === 1) {
        state.dataList = res.page.list;
      } else {
        state.dataList = [...state.dataList, ...res.page.list];
      }
      params.total = res.page.total;
      state.dataParams = params;
    } else {
      state.dataList = [];
    }
    state.dataLoading = false;
  },
  // 查询资料展示列表 热门下载
  async getDataAllR({ state }, { params }) {
    const res = await api.getDataAll(params);
    console.log(res, params);
    if (res.code === 20000) {
      state.dataListR = res.page.list;
      state.dataParamsR = params;
    } else {
      state.dataListR = [];
    }
  },
  // 查询资料展示列表 热门浏览
  async getDataBrowseAllR({ state }, { params }) {
    const res = await api.getDataAll(params);
    console.log(res, params);
    if (res.code === 20000) {
      state.dataBrowseListR = res.page.list;
      state.dataBrowseR = params;
    } else {
      state.dataBrowseListR = [];
    }
  },
  // ----------------------------------------资料展示 end--------------------------------------------------
  // ----浏览量 / 下载量---
  async updateById(context, { params }) {
    const res = await api.updateById(params);
    console.log(res);
  },
  // 下载
  async fileDown(context, { params }) {
    const res = await api.fileDown(params);
    console.log(res);
  },
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

